﻿using System.Collections.Generic;
using System.ServiceModel;
using System.ServiceModel.Web;
using Acaweb.Model.Entities;
using Acaweb.Model.Entities.DatosCompuestos;

namespace Acaweb.Servicios.Contracts
{
    // NOTE: You can use the "Rename" command on the "Refactor" menu to change the interface name "IEgresadosServic" in both code and config file together.
    [ServiceContract]
    public interface IEgresadosService
    {
        [WebInvoke(Method = "POST", UriTemplate = "GetById", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
        [OperationContract]
        Egresados GetById(int Id);

        [WebInvoke(Method = "POST", UriTemplate = "GetInformacionLaboralById", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
        [OperationContract]
        HistorialLaboral GetInformacionLaboralById(HistorialLaboralPk HistorialLaboralPk);

        [Acaweb.Servicios.Utility.AmbitoRealizacion(new Acaweb.Servicios.Utility.Ambitos[] { Acaweb.Servicios.Utility.Ambitos.Administrativo, Acaweb.Servicios.Utility.Ambitos.Estudiante, Acaweb.Servicios.Utility.Ambitos.Egresado })]
        [WebInvoke(Method = "POST", UriTemplate = "AddInformacionLaboral", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
        [OperationContract]
        void AddInformacionLaboral(HistorialLaboral HistorialLaboral);

        [Acaweb.Servicios.Utility.AmbitoRealizacion(new Acaweb.Servicios.Utility.Ambitos[] { Acaweb.Servicios.Utility.Ambitos.Administrativo, Acaweb.Servicios.Utility.Ambitos.Estudiante, Acaweb.Servicios.Utility.Ambitos.Egresado })]
        [WebInvoke(Method = "POST", UriTemplate = "EditInformacionLaboral", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
        [OperationContract]
        void EditInformacionLaboral(HistorialLaboral HistorialLaboral);

        [Acaweb.Servicios.Utility.AmbitoRealizacion(new Acaweb.Servicios.Utility.Ambitos[] { Acaweb.Servicios.Utility.Ambitos.Administrativo, Acaweb.Servicios.Utility.Ambitos.Estudiante, Acaweb.Servicios.Utility.Ambitos.Egresado })]
        [WebInvoke(Method = "POST", UriTemplate = "DeleteInformacionLaboral", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
        [OperationContract]
        void DeleteInformacionLaboral(HistorialLaboralPk HistorialLaboral);

        [WebInvoke(Method = "POST", UriTemplate = "GetInformacionAcademicaById", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
        [OperationContract]
        HistorialAcademico GetInformacionAcademicaById(HistorialAcademicoPk HistorialAcademicoPk);

        [Acaweb.Servicios.Utility.AmbitoRealizacion(new Acaweb.Servicios.Utility.Ambitos[] { Acaweb.Servicios.Utility.Ambitos.Administrativo, Acaweb.Servicios.Utility.Ambitos.Estudiante, Acaweb.Servicios.Utility.Ambitos.Egresado })]
        [WebInvoke(Method = "POST", UriTemplate = "AddInformacionAcademica", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
        [OperationContract]
        void AddInformacionAcademica(HistorialAcademico HistorialAcademico);

        [Acaweb.Servicios.Utility.AmbitoRealizacion(new Acaweb.Servicios.Utility.Ambitos[] { Acaweb.Servicios.Utility.Ambitos.Administrativo, Acaweb.Servicios.Utility.Ambitos.Estudiante, Acaweb.Servicios.Utility.Ambitos.Egresado })]
        [WebInvoke(Method = "POST", UriTemplate = "EditInformacionAcademica", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
        [OperationContract]
        void EditInformacionAcademica(HistorialAcademico HistorialAcademico);

        [Acaweb.Servicios.Utility.AmbitoRealizacion(new Acaweb.Servicios.Utility.Ambitos[] { Acaweb.Servicios.Utility.Ambitos.Administrativo, Acaweb.Servicios.Utility.Ambitos.Estudiante, Acaweb.Servicios.Utility.Ambitos.Egresado })]
        [WebInvoke(Method = "POST", UriTemplate = "DeleteInformacionAcademica", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
        [OperationContract]
        void DeleteInformacionAcademica(HistorialAcademicoPk HistorialAcademico);

        [WebInvoke(Method = "POST", UriTemplate = "GetHistorialAcademicoByCodigoInterno", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
        [OperationContract]
        List<HistorialAcademico> GetHistorialAcademicoByCodigoInterno(int CodigoInterno);

        [Acaweb.Servicios.Utility.AmbitoRealizacion(new Acaweb.Servicios.Utility.Ambitos[] { Acaweb.Servicios.Utility.Ambitos.Administrativo, Acaweb.Servicios.Utility.Ambitos.Estudiante, Acaweb.Servicios.Utility.Ambitos.Egresado })]
        [WebInvoke(Method = "POST", UriTemplate = "AddHijos", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
        [OperationContract]
        void AddHijos(Hijos Hijo);

        [Acaweb.Servicios.Utility.AmbitoRealizacion(new Acaweb.Servicios.Utility.Ambitos[] { Acaweb.Servicios.Utility.Ambitos.Administrativo, Acaweb.Servicios.Utility.Ambitos.Estudiante, Acaweb.Servicios.Utility.Ambitos.Egresado })]
        [WebInvoke(Method = "POST", UriTemplate = "EditHijos", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
        [OperationContract]
        void EditHijos(Hijos Hijo);

        [Acaweb.Servicios.Utility.AmbitoRealizacion(new Acaweb.Servicios.Utility.Ambitos[] { Acaweb.Servicios.Utility.Ambitos.Administrativo, Acaweb.Servicios.Utility.Ambitos.Estudiante, Acaweb.Servicios.Utility.Ambitos.Egresado })]
        [WebInvoke(Method = "POST", UriTemplate = "DeleteHijos", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
        [OperationContract]
        void DeleteHijos(HijosPk HijoPk);

        [WebInvoke(Method = "POST", UriTemplate = "GetHijosByCodigoInterno", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
        [OperationContract]
        List<Hijos> GetHijosByCodigoInterno(int CodigoInterno);

        [Acaweb.Servicios.Utility.AmbitoRealizacion(new Acaweb.Servicios.Utility.Ambitos[] { Acaweb.Servicios.Utility.Ambitos.Administrativo, Acaweb.Servicios.Utility.Ambitos.Estudiante, Acaweb.Servicios.Utility.Ambitos.Egresado })]
        [WebInvoke(Method = "POST", UriTemplate = "AddIdiomas", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
        [OperationContract]
        void AddIdiomas(ManejoIdiomas Idioma);

        [Acaweb.Servicios.Utility.AmbitoRealizacion(new Acaweb.Servicios.Utility.Ambitos[] { Acaweb.Servicios.Utility.Ambitos.Administrativo, Acaweb.Servicios.Utility.Ambitos.Estudiante, Acaweb.Servicios.Utility.Ambitos.Egresado })]
        [WebInvoke(Method = "POST", UriTemplate = "EditIdiomas", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
        [OperationContract]
        void EditIdiomas(ManejoIdiomas Idioma);

        [Acaweb.Servicios.Utility.AmbitoRealizacion(new Acaweb.Servicios.Utility.Ambitos[] { Acaweb.Servicios.Utility.Ambitos.Administrativo, Acaweb.Servicios.Utility.Ambitos.Estudiante, Acaweb.Servicios.Utility.Ambitos.Egresado })]
        [WebInvoke(Method = "POST", UriTemplate = "DeleteIdiomas", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
        [OperationContract]
        void DeleteIdiomas(ManejoIdiomasPk Idioma);

        [WebInvoke(Method = "POST", UriTemplate = "GetIdiomasByCodigoInterno", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
        [OperationContract]
        List<ManejoIdiomas> GetIdiomasByCodigoInterno(int CodigoInterno);
        
        [WebInvoke(Method = "POST", UriTemplate = "GetIdiomaById", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
        [OperationContract]
        ManejoIdiomas GetIdiomaById(ManejoIdiomasPk Pk);
    }
}
